// use localStorage to store the authority info, which might be sent from server in actual project.
export function getAuthority(str) {
  // return localStorage.getItem('antd-pro-authority') || ['admin', 'user'];
  const authorityString =
    typeof str === 'undefined' ? localStorage.getItem('authority') : str;
  // authorityString could be admin, "admin", ["admin"]
  let authority;
  try {
    authority = JSON.parse(authorityString);
  } catch (e) {
    authority = authorityString;
  }
  if (typeof authority === 'string') {
    return [authority];
  }
  // todo fix authority
  return authority || ['guest'];
}

export function setAuthority(authority) {
  const proAuthority = typeof authority === 'string' ? [authority] : authority;
  return localStorage.setItem('authority', JSON.stringify(proAuthority));
}

export const getToken = () => {
  return localStorage.getItem('tk')
};

export const setToken = (val) => {
  localStorage.setItem('tk', val)
};

export const removeToken = () => {
  localStorage.removeItem('tk');
};


export const setUserInfo = (payload) => {
  localStorage.setItem('user', JSON.stringify(payload));
};

export const getUserInfo = (payload) => {
  return JSON.parse(localStorage.getItem('user'));
};

export const storageClear = () => {
  localStorage.clear();
};
